{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "4e7eb9d5-5024-46b9-a7e3-ab38c6a60a46",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3792000"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import cv2\n",
    "import math\n",
    "page=0\n",
    "cap = cv2.VideoCapture(\"123.mp4\")\n",
    "imgarrays = bytearray()\n",
    "while cap.isOpened():\n",
    "    ret, frame = cap.read()\n",
    "    page = page+1\n",
    "    if ret == False:\n",
    "        break\n",
    "    # plt.imshow(frame)\n",
    "    # imgbytes = cv2.imencode(\".jpg\", frame)[1].tobytes()\n",
    "    if(page%1==0 and page<80):\n",
    "        # print(page)\n",
    "        imgbytes = frame.tobytes()\n",
    "        imgarray = bytearray(48000)\n",
    "        for i in range(0,200):\n",
    "            for j in range(0,80):\n",
    "                port =((int)(-math.sin(i/31.831)*j+80)*160+(int)(math.cos(i/31.831)*j)+80)\n",
    "                imgarray[i*240+j*3] =(int)(imgbytes[port*3]*(j+3)/300)\n",
    "                imgarray[i*240+j*3+1] =(int)(imgbytes[port*3+1]*(j+3)/300)\n",
    "                imgarray[i*240+j*3+2] =(int)(imgbytes[port*3+2]*(j+3)/300)\n",
    "        imgarrays = imgarrays + imgarray\n",
    "            \n",
    "cap.release()\n",
    "len(imgarrays)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "903eed79-ea0b-4c52-83f1-6d141b2a68cb",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "with open(\"imgarrays\", \"wb\") as output:\n",
    "    output.write(imgarrays)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "7cbc41b1-1af0-43eb-8a1f-aecdaf794229",
   "metadata": {},
   "outputs": [],
   "source": [
    "import cv2\n",
    "cap = cv2.VideoCapture(\"123.mp4\")\n",
    "ret, frame = cap.read()\n",
    "imgbytes = frame.tobytes()\n",
    "cap.release()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "8ef6bb0b-08b6-46a1-9bbc-315cc49e696b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "76800"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(imgbytes)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "id": "3a0406de-a1d2-4a1c-9311-fc08f150bd7d",
   "metadata": {},
   "outputs": [],
   "source": [
    "imgbytes[160*100*3+99*3+2]\n",
    "imgarr = bytearray(imgbytes)\n",
    "imgarr[10]=10\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "id": "c8fa1223-4f0c-4f45-81f3-574fba75d714",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "10"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "imgarr[10]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "id": "07ff460f-84b3-40e6-9e41-4b38f8eb2ea8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([194,   0, 189], dtype=uint8)"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "frame[100][99]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "id": "8f45e2f4-91c7-4e95-bd9e-c624ffb0e598",
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "with open(\"output\", \"wb\") as output:\n",
    "    output.write(imgarr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "id": "2a97a8c8-b193-41e0-bd5b-238257f62f0c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x7f02425d2dd0>"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from matplotlib import pyplot as plt\n",
    "plt.imshow(frame)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "id": "53870e07-bc0e-40ef-acbb-08f1e5153bda",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "20"
      ]
     },
     "execution_count": 103,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "b1 = bytearray(10)\n",
    "b2 = bytearray(10)\n",
    "b1 = b1 +b2\n",
    "b1\n",
    "len(b1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "3fd05fef-51d9-43f5-ab53-3046fab51f58",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cv2.imwrite('123.jpg',frame)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "id": "3230ec60-93b6-40fb-bc04-c371fe8595da",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "48000"
      ]
     },
     "execution_count": 100,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "imgarray = bytearray(48000)\n",
    "for i in range(0,200):\n",
    "    for j in range(0,80):\n",
    "        port =((int)(-math.sin(i/31.831)*j+80)*160+(int)(math.cos(i/31.831)*j)+80)\n",
    "        imgarray[i*240+j*3] =(int)(imgbytes[port*3]*(j+3)/300)\n",
    "        imgarray[i*240+j*3+1] =(int)(imgbytes[port*3+1]*(j+3)/300)\n",
    "        imgarray[i*240+j*3+2] =(int)(imgbytes[port*3+2]*(j+3)/300)\n",
    "    # print(i)\n",
    "len(imgarray)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "433d0a9f-b1cb-40c9-beea-048fa028c871",
   "metadata": {},
   "outputs": [],
   "source": [
    "int32_t port = ((int32_t)(-sin(i/31.831)*j+80)*160+(int32_t)(cos(i/31.831)*j)+80);\n",
    "ledData[i*240+j*3] =jd.outData[port*3]*(j+3)/300;\n",
    "ledData[i*240+j*3+1] =jd.outData[port*3+1]*(j+3)/300;\n",
    "ledData[i*240+j*3+2] =jd.outData[port*3+2]*(j+3)/300;"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "id": "53e0f0f5-cd09-4aeb-b386-6e5b1f49a738",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "13278"
      ]
     },
     "execution_count": 93,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import math\n",
    "port =((int)(-math.sin(i/31.831)*j+80)*160+(int)(math.cos(i/31.831)*j)+80)\n",
    "port"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3a53dcd9-a1e8-4f99-b72c-8226f264fbb4",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
